function [b_seq_a, q] = Function_Base_Seq_Cyclic_Shift(N_PRB, u, v, a)
% base_seq_cyclic_shift Generate the (frequency-domain representation of the) cyclic-shifted (u, v) base sequence used by PUSCH DMRS,
%              corresponding to N_PRB RBs and one slot
% Inputs:      u                        - Group number. Must be an element of {0,1,...,29}
%              v                        - Base sequence number. Either v=0 or v=1
%              a                        - (Cyclic) shift (non-negative integer)
% Outputs:     b_seq_a                  - (Cyclic shifted) base sequqnece
%              q                        - root of the Zadoff-Chu sequqnce
% Spec:        3GPP TS 36.211 section 5.5.1 v13.0.0
    [b_seq, q] = Function_Generate_Base_Seq(N_PRB, u, v);
            
	b_seq_a = zeros(1, N_PRB * 12); %allocate memory
	for n = 0:N_PRB * 12 - 1
        b_seq_a(n+1) = exp(1i * a * n) * b_seq(n+1);
	end
end